'use strict'

const fs = require('fs')

module.exports = () => {
  let app_dir = __dirname
  let config_dir = app_dir + '/config'
  let example_dir = app_dir + '/config-example'
  /**
   * 初始化配置文件，如果没有进行配置则自动初始化。
   */
  try {
    fs.accessSync(config_dir)
  } catch (err) {
    fs.mkdirSync(config_dir)
  }

  try {
    fs.accessSync(config_dir + '/config.js')
    fs.accessSync(config_dir + '/database.js')
  } catch (err) {
    console.log('首次运行服务，正在初始化配置文件···')

    let flist = fs.readdirSync(example_dir, {withFileTypes: true})
    for (let f of flist) {
      if (!f.isFile()) continue
      try {
        fs.accessSync(config_dir + '/' + f.name)
      } catch (err) {
        fs.copyFileSync(`${example_dir}/${f.name}`, `${config_dir}/${f.name}`)
      }
    }
    
    console.log('已经初始化配置文件')
    console.log('请在 config/ 目录中配置config.js以及database.js，然后再次运行服务。')
    process.exit(0)
  }
}